﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using LogicaNegocios.Manager;
using Dominio;

namespace UIWeb
{
    public partial class MantenimientoDeporte : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            UsuarioManager um = UsuarioManager.GetManager();
            if (Session["userLogin"] == null)
            {
                Response.Redirect("~/UserLogin.aspx");
            }
            else
            {
                if (um.esSeguidor((Usuario)Session["userLogin"]) || um.noTieneRol((Usuario)Session["userLogin"]))
                    if (um.esAdmin((Usuario)Session["userLogin"]))
                    {
                        Response.Redirect("~/Default.aspx");
                    }
                    else
                        Response.Redirect("~/Default_seguidores.aspx");

                else
                    if (!IsPostBack)
                        cargarDGV();
            }
        }

        private void cargarDGV()
        {
            DeporteManager deporteManager = DeporteManager.GetManager();

            List<Deporte> deportes = deporteManager.GetDeportes();
            if (deportes != null)
            {
                DGVDeportes.DataSource = deportes;
                DGVDeportes.DataBind();
            }

        }

        protected void lnkBaja_Click(object sender, EventArgs e)
        {
            try
            {
                if (DGVDeportes.SelectedRow != null)
                {
                    lblError.Visible = false;
                    int indice = DGVDeportes.SelectedIndex;
                    DeporteManager deporteMgr = DeporteManager.GetManager();
                    List<Deporte> deportes = deporteMgr.GetDeportes();
                    Deporte deporte = deportes.ElementAt(indice);
                    deporteMgr.EliminarDeporte(deporte);
                    txtNombre.Text = string.Empty;
                    cargarDGV();
                    DGVDeportes.SelectedIndex = -1;
                }
            }
            catch (Exception ex)
            {
                lblError.Text = ex.Message;
                lblError.Visible = true;
                txtNombre.Text = string.Empty;
            }

        }

        protected void lnkModificar_Click(object sender, EventArgs e)
        {
            try
            {
                lblError.Visible = false;
                if (DGVDeportes.SelectedRow != null)
                {
                    int indice = DGVDeportes.SelectedIndex;
                    DeporteManager deporteMgr = DeporteManager.GetManager();
                    List<Deporte> deportes = deporteMgr.GetDeportes();
                    Deporte deporte = deportes.ElementAt(indice);
                    deporte.Nombre = txtNombre.Text;
                    deporteMgr.ModificarDeporte(deporte);
                    cargarDGV();
                    txtNombre.Text = string.Empty;
                }
            }
            catch (Exception ex)
            {
                lblError.Text = ex.Message;
                lblError.Visible = true;
                txtNombre.Text = string.Empty;
            }

        }

        protected void lnkAlta_Click(object sender, EventArgs e)
        {
            try
            {
                DeporteManager deporteManager = DeporteManager.GetManager();
                Deporte deporte = new Deporte();
                deporte.Nombre = txtNombre.Text;
                deporteManager.CrearDeporte(deporte);
                cargarDGV();
                txtNombre.Text = string.Empty;

            }
            catch (Exception ex)
            {
                lblError.Text = ex.Message;
                
            }

        }

        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (DGVDeportes.SelectedRow != null)
            {
                int indice = DGVDeportes.SelectedIndex;
                DeporteManager deporteMgr = DeporteManager.GetManager();
                List<Deporte> deportes = deporteMgr.GetDeportes();
                Deporte deporte = deportes.ElementAt(indice);
                txtNombre.Text = deporte.Nombre;

            }

        }



    }
}